const { ipcMain, dialog, app } = require('electron')
const { autoUpdater } = require('electron-updater')

// 自动更新相关事件监听
autoUpdater.autoDownload = false // 关闭自动更新
autoUpdater.autoInstallOnAppQuit = true // APP退出的时候自动安装

autoUpdater.setFeedURL({
	provider: 'generic',
	url: 'http://127.0.0.1:80' // git仓库
});

app.whenReady().then(() => {
	autoUpdater.checkForUpdates();
})
autoUpdater.on('update-available', res => {
	dialog.showMessageBox({
		type: 'info',
		title: '软件更新',
		message: '发现新版本, 确定更新?',
		buttons: ['确定', '取消']
	}).then(resp => {
		if (resp.response == 0) {
			autoUpdater.downloadUpdate()
		}
	})
})
autoUpdater.on('update-downloaded', () => {
	dialog.showMessageBox({
		title: '下载完成',
		message: '最新版本已下载完成, 退出程序进行安装'
	}).then(() => {
		autoUpdater.quitAndInstall()
	})
})
/* 
autoUpdater.on('update-available', (info) => {
	console.log(info)
	global.mainWin.webContents.send('update', info);
	global.mainWin.webContents.console(info)
})
autoUpdater.on('error', (err) => {
	global.mainWin.webContents.console.log(err)
})
 */
/* 
autoUpdater.on('download-progress', (progressObj) => {
	console.log(progressObj)
	global.mainWin.webContents.send('progress', progressObj);
})
autoUpdater.on('update-downloaded', (info) => {
	console.log(info)
	global.mainWin.webContents.send('downloaded', info);
})
 */

ipcMain.handle('check-update', () => {
	return autoUpdater.checkForUpdates();
})